package main

import (
	"fmt"
)

func outString() {
	i := -1
	fmt.Println(string(i))
	i = 1
	fmt.Println(string(i))
	i = 97
	fmt.Println(string(i))

	//i = 0xff
	i = 0x31
	fmt.Println(string(i))

	/*	i1 := "0x4E25"
		i2, err := strconv.ParseInt(i1, 0, 0)
		if err != nil {
			fmt.Println(err)
		}
		fmt.Println(i2)*/
}

func outByte() {
	//越界[]byte{256} 0-255
	t := []byte{49, 48}
	fmt.Println(string(t))

	t = []byte{65, '\x42'}
	fmt.Println(string(t))

	t = []byte{'\x41', '\x42'}
	fmt.Println(string(t))

	fmt.Println(string([]byte{'\xe4', '\xbd', '\xa0', '\xe5', '\xa5', '\xbd'}))

	s := string(0x4E45)
	fmt.Println([]byte(s))
}

//Unicode符号范围         |   UTF-8编码方式(十六进制)                    |  （二进制）—————————————————————–0000 0000-0000 007F | 0xxxxxxx0000 0080-0000 07FF | 110xxxxx 10xxxxxx0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
//(十六进制)             |  （二进制）
//—————————————————————–
//0000 0000-0000 007F | 0xxxxxxx
//0000 0080-0000 07FF | 110xxxxx 10xxxxxx
//0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
//0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
func runesTest() {
	str := "Go爱好者"
	fmt.Printf("The string: %q\n", str)
	fmt.Printf("  => runes(char): %q\n", []rune(str))
	//对应unicode码点
	fmt.Printf("  => runes(hex): %x\n", []rune(str))
	//对应utf8 编码值
	fmt.Printf("  => bytes(hex): [% x]\n", []byte(str))
}
